#include "comm.hpp"
using namespace std;

int main()
{
    // 创建共享内存
    key_t key = CreateKey();
    int shmid = shmget(key, MEM_SIZE, flag);
    if (shmid == -1)
    {
        perror("shmget");
        return 1;
    }

    // 使共享内存与进程进行关联
    char *str = static_cast<char *>(shmat(shmid, nullptr, 0));
    if (str == reinterpret_cast<char *>(-1))
    {
        perror("shmat");
        return 1;
    }

    // 使用共享内存
    while (true)
    {
        printf("%s\n", str);
        sleep(1);
    }

    // 解除共享内存关联
    if (shmdt(str) == -1)
    {
        perror("shmdt");
        return 1;
    }

    // 删除共享内存
    if (shmctl(shmid, IPC_RMID, nullptr) == -1)
    {
        perror("shmctl");
        return 1;
    }
    return 0;
}